Day22 - 以Django Web框架實作永豐API線上支付模擬情境3 - 兩種付款方式實作
昨天使用了Bootstrap5、Vue,打造了我們的付款流程入口頁面後,今天要將之前的ATM虛擬帳戶轉帳付款以及信用卡線上刷卡的頁面也實作一下。
還記得我們昨天從order_create_entrance
頁面送出form表單後,會執行action頁面order_create_next
,接著就是要實作這個view以及Django Template。
[View] order_create_next
先看一下view def的部份:
def order_create_next(request):
context = {
"title": "訂單成立囉!",
"desc": "請依照下列付款資訊完成付款,放心,我們不是詐騙集團,但這麼說好像也不會讓人多放心。",
"amount": int(request.POST.get("amount")),
"payment_type": request.POST.get("payment")
}
if context["payment_type"] == "atm":
will_paid = True
resp = create_new_atm_order(will_paid, context["amount"])
context["order_no"] = resp.orderno
context["atm_pay_no"] = resp.atm_pay_no
context["atm_url"] = resp.web_atm_url
elif context["payment_type"] == "card":
will_paid = True
auto_billing = "Y"
resp = create_new_card_order(will_paid, context["amount"], auto_billing)
context["order_no"] = resp.orderno
context["card_pay_url"] = resp.card_pay_url
else:
pass
return render(request, 'order/order_create_next.html', context)
程式說明
我們會從前一頁傳入amount
總金額以及payment_type
付款方式兩個參數。要記得先將amount轉換成int的型態,否則後面在永豐的規則要把amount補2個零的時候,如果你把一個長的像數字的字串拿去x100的話…(笑)。
由於先前已實作好create_new_atm_order()
以及create_new_card_order()
這兩個針對ATM轉帳以及信用卡刷卡的方法,現在在後段實作上就發揮功效了!我們終於不用再辛辛苦苦面對那些加解密和安全簽章等等過程。要做的就只有當時我們需要傳入的參數,準備一下就好了。